/**
 * @param {string} s
 * 由若干单词和若干空白字符串组成，其中单词是由非空字符串组成的
 * 返回最后一个单词的长度
 * 直接从最后一个单词的后面开始遍历，直到遇到空格为止
 *  当i遇到非空格时，i就是最后一个单词的结尾
 *  当i再次遇到空格是，i+1就是最后一个单词的开始
 */
var lengthOfLastWord = function (s) {
  let start = -1,
    end = -1
  for (let i = s.length - 1; i >= 0; i--) {
    const char = s[i]
    // 遇到字母，说明此时i是最后一个单词的结尾
    if (char !== " " && end == -1) {
      end = i
    } else if (char === " ") {
      // 遇到空格，先判断end是否存在，存在的话说明结束，否则还没遇到字母
      if (end !== -1) {
        start = i + 1
      } else {
        continue
      }
    }
    if (start != -1 && end != -1) {
      break
    }
  }
  const str = s.substring(start < 0 ? 0 : start, end + 1)
  return str.length
}

export { lengthOfLastWord }
